home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
comm
/
fido
/
fz104.lha
/
rexx
/
Make4D.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1991-11-19
|
3KB
|
132 lines
/*
*
*
* Make4D.rexx
* ¯¯¯¯¯¯¯¯¯¯¯
*
* Creates a four dimensional traplist.library compatible
* nodelist from the two dimensional german pointlist POINTS24.
*
* Written 29-Dec-1990 by Peer Hasselmeyer (2:247/4 @ FidoNet)
* Date of this version: 18-Nov-1991, 23:35:05
*
*
*
* The incoming POINTS24.### file consists of entries for each
* boss node like:
* Host,<fakenet>,<boss net/node>,<place>,<sysop>,<tel>,<baud>,<flags>
*
* Each point occupies one line that looks like:
* ,<point-#>,<net/node.point>,<place>,<sysop>,<tel>,<baud>,<flags>
*
*
* The resulting PointList.### looks like:
* Host,<net>,->
* ,<node>,->
*
* and many point entries:
* Point,<point-#>,<net/node.point>,<place>,<sysop>,<tel>,<baud>,<flags>
*
*
*/
/*-----------------------------------------------------------------------*/
nldir = "dh1:Nodelist/" /* Nodelist-Directory, must end with "/" or ":" */
name2d = "POINTS24." /* name of 2d list */
name4d = "PointList." /* name of 4d list */
/*-----------------------------------------------------------------------*/
if ~show(l, "rexxsupport.library") then
if ~addlib("rexxsupport.library", 0, -30, 0) then do
say "Couldn't open rexxsupport.library !" /* open support.lib */
exit 20
end
dfiles = showdir(nldir, f)
if dfiles = "" then do
say "No" name2d || "* file found !" /* no files in NL-Dir */
exit
end
ext = ""
do until dfiles = ""
parse var dfiles cfile dfiles
if upper(left(cfile, length(name2d))) = upper(name2d) then do
ext = right(cfile, 3)
dfiles = ""
end
end
if ext = "" then do
say "No" name2d || "* file found !" /* no 2d-file found */
exit
end
if ~open(infile, nldir || name2d || ext, r) then do
say 'Couldn''t open 2d-list "' || name2d || ext || '" !'
exit 20
end
if ~open(outfile, nldir || name4d || ext, w) then do
say 'Couldn''t open 4d-list "' || name4d || ext || '" !'
exit 20
end
say 'Creating 4d-list "' || name4d || ext || '" from "' || name2d || ext || '" ...'
net = 0
node = 0
call writeln outfile, readln(infile) /* copy first line */
do while ~eof(infile)
inline = readln(infile)
if length(inline) < 3 then iterate
if left(inline,1) = ";" then iterate /* ignore comments */
parse var inline keyword "," rest
upper keyword
select
when keyword = "HOST" then do
parse var rest nnet "," rest
if nnet = 24000 then iterate /* ignore host24000 */
parse var rest nnet "/" node "," .
if index(nnet,":") > 0 then parse var nnet . ":" nnet
if nnet ~= net then do
net = nnet
call writeln outfile, "Host," || net || ",->" || "0d"x
end
call writeln outfile, "," || node || ",->" || "0d"x
iterate
end
when keyword = "HUB" then do
parse var rest . "," nnet "/" node "," .
if nnet ~= net then do
net = nnet
call writeln outfile, "Host," || net || ",->" || "0d"x
end
call writeln outfile, "," || node || ",->" || "0d"x
node = nnode
end
when keyword = "ZONE" then do
parse var rest zone "," .
call writeln outfile, "Zone," || zone || ",->" || "0d"x
iterate
end
when keyword = "REGION" then do
parse var rest zone "," .
call writeln outfile, "Region," || zone || ",->" || "0d"x
iterate
end
otherwise nop
end
call writeln outfile, "Point," || rest
end
call close outfile
call close infile
say "All right !"